function PPdesinger(config){
	var props = {
			title:"设计器",				//设计器名称
			width:1200,					//默认设计器宽度
			height:600,					//默认设计器高度
			layout:'absolute',			//默认设计器布局方式
			mulSelectItemId:[],			//设计器中选中元素id数组
			is_show_bc:false,			//设计器标尺线显示状态
			formColor:'fff',			//默认表单颜色
			useFormTab:{flag:false,tabNumber:1},
			contextMenuId:"",			//右键点击时  选中的id
			ffName:"表单",
			howCreateForm:{
				isNewForm:true,
				isRedisplayForm:false,
				isModifyForm:false		//true,表示进入修改页面
			},
			itemIndex:0,				//记录当前页面有多少元素 0开始
			itemTabIndex:1,				//需要tab顺序的 元素 tab属性
			itemIdArr:[],					//记录当前页面所欲元素id
			itemTypeArr:[],				//记录当前页面所欲元素type
			itemIdArrTab:[],					
			itemTypeArrTab:[],				
			isModifyLabel:{flag:false,labelId:""},		//双击修改label标志位
			linstenersFlag:{
				beforeSaveFlag:false,
				afterSaveFlag:false,
				beforeCreateFlag:false,
				afterCreateFlag:false,
				afterSelectOneFlag:false,
				afterSelectMulFlag:false,
				beforeSelectOneFlag:false
			},												
			linsteners:{
				beforeSave:function(cfz_saveXml,cfz_saveHtmlEditor){},
				afterSave:function(){},
				beforeCreate:function(i_id,i_type,useType){},
				afterCreate:function(i_id,i_type,userType){},
				afterSelectOne:function(selectElement,i_id,i_type,userType){},
				afterSelectMul:function(selectIdArr){},
				beforeSelectOne:function(selectElement,i_id,i_type,userType){}
			},
			
			toolbar: {					//工具条  通过设置 true可以显示相应的 toolbaritem
						新建:false,
						保存:false,
						返回:false,
						上传:false,
						下载:false,
						打开本地:false,
						另存本地:false,
						label:false,
						textfield:false,
						numberfield:false,
						textarea:false,
						datefield:false,
						linex:false,
						liney:false,
						imag:false,
						background:false,
						htmleditor:false,
						checkbox:false,
						radiobox:false,
						button:false
					},
			toolbarInit:
					{
						新建:'新建表单',
						保存:'保存表单',
						返回:'返回上一个页面',
						label:'标签',
						上传:'上传表单',
						下载:'下载表单',
						打开本地:'打开本地表单',
						另存本地:'存在本地表单',
						select:'下拉框',
						textfield:'文本框',
						numberfield:'数字框',
						textarea:'文本域',
						datefield:'日期框',
						linex:'横线',
						liney:'竖线',
						imag:'图片',
						background:'背景颜色',
						htmleditor:'文本编辑器',
						checkbox:"复选框",
						radiobox:"单选框",
						button:"按钮"
					},
			 menu:
			 		{
						插入表格:false,
						字体:false,
						颜色:false,
						字体:false,
						字形:false,
						字号:false,
						标尺线:false,
						另存为:false,
						打开:false
					},
			contextmenu:
					{
						删除:false,
						左对齐:false,
						上对齐:false,
						下对齐:false,
						右对齐:false,
						水平平均:false,
						垂直平均:false,
						自动求和:false
					},
			formContexmenu:
					{
						全选:false,
						黏贴:false
					}
	    };
	for (var p in props) 
	{
	        this[p] = (typeof config[p] == 'undefined') ? props[p] : config[p];
	        if(p=="linsteners"&&config[p] != 'undefined')
	        {
	        	for(var i in config[p])
	        		eval("this.linstenersFlag."+i+"Flag = true");
	        }
	}
	        //整个表单设计器窗口布局
	
    //选择图片窗口
	this["logoWindow"]  = new Ext.Window({
		title: '图片',
     	width: 200,
     	height: 200,
    	layout: "border",
     	id: "_logowindow",
     	modal:true,
     	closeAction: 'hide',
     	items: [{ //定义一个树
     			id:'formlogotree',
		        useArrows: true,
		        autoScroll: true,
		        xtype:'treepanel',
		        region:'center',
		        animate:false,//是否动画   
		        containerScroll: true,
		        border: false,
		        root: {
		            nodeType: 'async',
		            text: '图片',
		            draggable: false,
		            id: 'null',
		            icon:'../img/form.png',
		            children:imagloader
		        },
		      	listeners:{
      			'dblclick':function(a,e){
		        	var deleItemId = moveobjectcfz.element.id;
		        	 	moveobjectcfz.now_Object.logoWindow.hide();
          				$("#"+deleItemId+" img").remove();
          				$("#"+deleItemId).attr("src",a.text);
						$("#"+deleItemId).append('<img src = "../ppdesinger/img/logo/'+a.text+'" style="display:iinline-block;width:100%;height:100%;">');	
          		}
     		},
		   rootVisible:false
       }],
     	listeners:{
				'hide':function(){is_logoWindow_open = false;}
		}               
  	});
	
	

	var formcontextmenu =  new Ext.menu.Menu({
		id:'theformContextMenu'
	});
	for(var k in this["formContexmenu"])
	{
		if(this["formContexmenu"][k]==true)
		{
			var contextmenuItems = eval("this.formcontextmenuItem."+k);
			formcontextmenu.add(contextmenuItems);
		}
	}
	var contextmenu = new Ext.menu.Menu({
		id:'theContextMenu'
	});
	for(var j in this["contextmenu"])
	{
		if(this["contextmenu"][j]==true)
		{
			var contextmenuItems = eval("this.contextmenuItem."+j);
			contextmenu.add(contextmenuItems);
		}
	}

    //整个工具栏       必须得设置 ，否则 没有工具条   设置 true显示，  false或者不设   不显示
    var toolbar = new Ext.Toolbar({
    	id:"toolbar_Id_cfz"
    });
    
    for(var i in this["toolbar"])
    {
    	if(this["toolbar"][i]==true)
    	{
    		if((eval("this.allToolbarFunction."+i))==undefined)
    		{//表示是 拖动元素
    			var imgsrc = ("../ppdesinger/img/toolbar/"+i+".gif");
    			toolbar.add(
    				{
    					html:"<img style='width:20px;margin-right:15px;' src='"+imgsrc+"' title='"+this["toolbarInit"][i]+"'></img>",
    					id:'cfz_'+i,
    					xtype: 'label',
    					itemtype:i,
    					length:40

    				}); 
    		}
    		else
    		{//表示是 方法
    			var toolbarFuntionName  = eval("this.allToolbarFunction."+i);
    			toolbar.add(
	   				toolbarFuntionName
    			);
    		}
    	}
    	
    }

    var myobj = this;
    for(var i in this["menu"])
    {
    	if(this["menu"][i]==true)
    	{
    		
    		var toolbarFuntionName  = eval("this.allToolbarFunction."+i);
			toolbar.add(
   				toolbarFuntionName
			);
    	}
    	
    }
    this["TabsPanel"] = new Ext.TabPanel({
        resizeTabs:true, // turn on tab resizing
        id:"TabsPanel_cfz_pp",
        minTabWidth: 115,
        tabWidth:135,
        enableTabScroll:true,
        region: 'center',
        defaults: {autoScroll:true},
        plugins: new Ext.ux.TabCloseMenu(),
        listeners:{
        	"beforetabchange":function(a,b,c)
        	{
	        	if(moveobjectcfz.now_Object.mulSelectItemId.length!=0)
	        	{	
	    			mourseMoveObject.isCanSelect = true;
	    			moveobjectcfz.deselect(true);
				}
	        	if(moveobjectcfz.now_Object.howCreateForm.isModifyForm||moveobjectcfz.now_Object.howCreateForm.isNewForm)
	        	{
	        		var propsGrid_cfzJson = {};
	        		propsGrid_cfzJson.表单名称 = b.get(0).title;
	        		propsGrid_cfzJson.表单高度 = b.get(0).height_;
	        		propsGrid_cfzJson.表单宽度 = b.get(0).width_;
	        		propsGrid_cfzJson.tab顺序方式 = b.get(0).tabSelectValue_;
	        		Ext.getCmp("propsGrid_cfz").setSource(propsGrid_cfzJson);
	        	}
        	}
        }
    });
    if(this.useFormTab.flag==false)
    {
	    this["centerPanel"] = new Ext.Panel({
	        id: 'biaodangsheji',
	        margins: '5 0 5 5',   //上-右-下-左
	        region: 'center',
	        autoScroll:true,
	        items: []
	    });
    }
    else
    {
    	  this["centerPanel"] = new Ext.Panel({
  	        id: 'biaodangsheji',
  	        margins: '5 0 5 5',   //上-右-下-左
  	        region: 'center',
  	        layout: 'border',
  	        autoScroll:true,
  	        items: [this["TabsPanel"]]
  	    });
    }
   
    this["windowPanel"] = new Ext.Panel({
        title: this["title"],
        width: this["width"],
        height:this["height"],
        layout: 'border',
        items: [{
            region: 'north',
            items: [{
                id:'toolbar_Id',
                items: [toolbar]
             }],
            plugins: new Ext.ux.PanelFieldDragZone(),
            height: 32,
            margins: '5 5 0 5',
            id: 'toolbar'
        }, 
       this.centerPanel,
        {
            region: 'east',
            margins: '5 5 5 5',
            width: 210,
            autoScroll:true,
            id:'attrPanel',
            collapsible: true,
            layout:"accordion",
            title: '组件属性表',
            items:[]
        }]
    });
    moveobjectcfz.now_Object = this;
}
